/*
 *  cuentaCorrienteNro y cajaDeAhorroNro fijarse si los hacemos nros o String
 */

package com.mybank.domain;


import java.sql.*;
import java.util.Properties; 



public class ClienteBean {
	private String id;
	private String apellido;
	private String nombre;
	private String documento;
	private CajaDeAhorro cajaDeAhorro; // un cliente puede tener hasta una caja de
								// ahorro
	private CuentaCorriente cuentaCorriente;

		
	public ClienteBean (String apellido, String nombre, String documento) {
		this.apellido = apellido;
		this.nombre = nombre;
		this.documento = documento;
	}

	public String toString() {
		return "ID: " + id + ", Apellido: " + apellido + ", Nombre: " + nombre
				+ ", Documento: " + documento + ", Caja de Ahorro: "
				+ cajaDeAhorro + ", Cuenta Corriente: " + cuentaCorriente
				+ "\n ";
	};

	public ClienteBean () {
	}

	public ClienteBean (String id) {
		this.id = id;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getApellido() {
		return apellido;
	}

	public void setApellido(String apellido) {
		this.apellido = apellido;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getDocumento() {
		return documento;
	}

	public void setDocumento(String documento) {
		this.documento = documento;
	}

	public CajaDeAhorro getCajaDeAhorro() {
		return cajaDeAhorro;
	}

	public void setCajaDeAhorro(CajaDeAhorro cajaDeAhorro) {
		this.cajaDeAhorro = cajaDeAhorro;
	}

	public CuentaCorriente getCuentaCorriente() {
		return cuentaCorriente;
	}

	public void setCuentaCorriente(CuentaCorriente cuentaCorriente) {
		this.cuentaCorriente = cuentaCorriente;
	}

	public void cargarCliente(int idCliente) 
	{
			String driverDb;
			String urlDb;
	        String usuarioDb;
	        String passwordDb;
	        // leo las propiedades ingresadas en Controller
			Properties p = System.getProperties();		
			
			driverDb = p.getProperty("driverDb");
			urlDb = p.getProperty("urlDb");
			usuarioDb = p.getProperty("usuarioDb");
			passwordDb = p.getProperty("passwordDb");
		
		this.setId(Integer.toString(idCliente));
		try 
		{
			Class.forName(driverDb);			
		} 
		catch (ClassNotFoundException e) {
			System.out.println(e.toString());
		}

		String sql = "SELECT * FROM CLIENTES WHERE ID = '" + idCliente + "'";

		try {
			Connection con = DriverManager.getConnection(urlDb, usuarioDb,passwordDb);

			Statement s = con.createStatement();
			ResultSet rs = s.executeQuery(sql);

			while (rs.next()) {
				this.setApellido(rs.getString(2));
				this.setNombre(rs.getString(3));
				this.setDocumento(rs.getString(4));
				String nroCajaDeAhorro = rs.getString(5);
				if (nroCajaDeAhorro != null) {
					cajaDeAhorro = new CajaDeAhorro();
					cajaDeAhorro.cargarCajaAhorro(nroCajaDeAhorro);
				}
				String nroCuentaCorriente = rs.getString(6);
				if (nroCajaDeAhorro != null) {
					cuentaCorriente = new CuentaCorriente();
					cuentaCorriente.cargarCuentaCorriente(nroCuentaCorriente);
				}
			}
			rs.close();
			s.close();
			con.close();
		} catch (SQLException e) {
		} catch (Exception e) {
		}
	}
}
